ChromeのPDF viewerでPDFのしおりを抽出する
1. ChromeのPDF viewerでPDFを開く
2. サイドパネルからしおり (PDF)を表示し、適当に右クリックしてdeveloper toolを開く
3. <viewer-document-outline>を右クリックしてグローバル変数として保存をクリックする
4. 次のコードをコンソールに貼り付けて実行する
code:js
{
function* extractBookmark(child, depth = 0) {
yield ${" ".repeat(depth)}${child.title};
for (const v of child.children) {
yield* extractBookmark(v, depth + 1);
}
}
console.log(
temp1.__data.bookmarks.flatMap(
(bookmark) => ...extractBookmark(bookmark)
).join("\n")
);
}
4. コンソールに目次が出力される
Scrapbox記法で目次が階層構造になるよう加工してある
pdf.js version
code:js
{
function* extractBookmark(child, depth = 0) {
yield ${" ".repeat(depth)}${child.title};
for (const v of child.items) {
yield* extractBookmark(v, depth + 1);
}
}
console.log(
PDFViewerApplication.pdfOutlineViewer._outline.flatMap(
(item) => ...extractBookmark(item)
).join("\n")
);
}
code:js
{
function* extractBookmark(child, depth, ...indice) {
yield ${" ".repeat(depth)}${indice.map((i) => ${i + 1}).join(".")} ${child.title};
let i = 0;
for (const v of child.items) {
yield* extractBookmark(v, depth + 1, ...indice, i++);
}
}
console.log(
PDFViewerApplication.pdfOutlineViewer._outline.flatMap(
(item, i) => ...extractBookmark(item, 0, i)
).join("\n")
);
}
#2025-02-04 10:23:11 使えなくなってた
直したい
#2024-06-03 23:08:58